# Comparação de CCI entre turnos da eleição 2010       #
#                                                      #
# Autor: Raphael Nishimura                             #
#        raphael.nishimura@gmail.com                   #
# Data: 20/10/2014                                     #
#                                                      #
# Descrição: Calcula e compara os coeficientes de      #
# correlação intra-classe (decorrente dos municípios)  #
# para as proporções de voto nos candidatos entre o 1o #
# e 2o turno da eleição presidencial de 2010           #

# Função CCI                                                                             #
# Calcula o Coeficiente de Correlação Intra-classe (CCI) populacional para uma proporção #
# onde se tem os totais de caso em cada conglomerado na população                        #
# Utiliza-se a definição dada por Särndal, Swensson and Wretman (1992), pág. 131         #
# Parâmetros da função:                                                                  #
# ytotal: vetor com total de casos na categoria da proporção a ser calculada em cada     #
#         conglomerado                                                                   #
# tam: vector com número total de casos em cada conglomerado                             #
CCI <- function(ytotal, tam)
{
   N <- sum(tam, na.rm = TRUE)
   Pi <- ytotal/tam
   P <- sum(ytotal, na.rm = TRUE)/sum(tam, na.rm = TRUE)
   SyU2 <- (N/(N-1))*(P*(1-P))
   SyUi2 <- (ytotal - tam*Pi^2)/(tam - 1)
   SyW2 <- sum(SyUi2*(tam-1), na.rm = TRUE)/sum(tam-1, na.rm = TRUE)
   CCI <- 1 - (SyW2/SyU2)
   CCI
}

# Abre bases de dados com resultados do 1o e 2o turnos da eleição presidencial de 2010 por município #
# Colocar em "Pasta" na função setwd abaixo o caminho onde está o arquivo votosMuni.RData            #
setwd("Pasta")
load("votosMuni2010.RData")

# Cria matriz para guardar os CCI de cada candidato #
CCIcandidatos <- matrix(nrow = 11, ncol = 2)
rownames(CCIcandidatos) <- c("DILMA","EYMAEL","IVAN.PINHEIRO","JOSE.SERRA","LEVY.FIDELIX","MARINA.SILVA",
                             "PLINIO","RUI.COSTA.PIMENTA","ZE.MARIA","VOTOS_BRANCOS","VOTOS_NULOS")
colnames(CCIcandidatos)<-  c("1o Turno","2o Turno")

# Calcula o vetor com o número total de votos em cada município do 1o turno #
tamTurno1 <- apply(votosMuniTurno1[,c("DILMA","EYMAEL","IVAN.PINHEIRO","JOSE.SERRA","LEVY.FIDELIX","MARINA.SILVA",
                                "PLINIO","RUI.COSTA.PIMENTA","ZE.MARIA","VOTOS_BRANCOS","VOTOS_NULOS")], 1, sum, na.rm = TRUE)

# Calcula os CCI de cada candidato no 1o turno #
CCIcandidatos["DILMA","1o Turno"] <- CCI(votosMuniTurno1[,"DILMA"], tamTurno1)
CCIcandidatos["EYMAEL","1o Turno"] <- CCI(votosMuniTurno1[,"EYMAEL"], tamTurno1)
CCIcandidatos["IVAN.PINHEIRO","1o Turno"] <- CCI(votosMuniTurno1[,"IVAN.PINHEIRO"], tamTurno1)
CCIcandidatos["JOSE.SERRA","1o Turno"] <- CCI(votosMuniTurno1[,"JOSE.SERRA"], tamTurno1)
CCIcandidatos["LEVY.FIDELIX","1o Turno"] <- CCI(votosMuniTurno1[,"LEVY.FIDELIX"], tamTurno1)
CCIcandidatos["MARINA.SILVA","1o Turno"] <- CCI(votosMuniTurno1[,"MARINA.SILVA"], tamTurno1)
CCIcandidatos["PLINIO","1o Turno"] <- CCI(votosMuniTurno1[,"PLINIO"], tamTurno1)
CCIcandidatos["RUI.COSTA.PIMENTA","1o Turno"] <- CCI(votosMuniTurno1[,"RUI.COSTA.PIMENTA"], tamTurno1)
CCIcandidatos["ZE.MARIA","1o Turno"] <- CCI(votosMuniTurno1[,"ZE.MARIA"], tamTurno1)
CCIcandidatos["VOTOS_BRANCOS","1o Turno"] <- CCI(votosMuniTurno1[,"VOTOS_BRANCOS"], tamTurno1)
CCIcandidatos["VOTOS_NULOS","1o Turno"] <- CCI(votosMuniTurno1[,"VOTOS_NULOS"], tamTurno1)

# Calcula o vetor com o número total de votos em cada município do 2o turno #
tamTurno2 <- apply(votosMuniTurno2[,c("DILMA","JOSE.SERRA","VOTOS_BRANCOS","VOTOS_NULOS")], 1, sum, na.rm = TRUE)

# Calcula os CCI de cada candidato no 2o turno #
CCIcandidatos["DILMA","2o Turno"] <- CCI(votosMuniTurno2[,"DILMA"], tamTurno2)
CCIcandidatos["JOSE.SERRA","2o Turno"] <- CCI(votosMuniTurno2[,"JOSE.SERRA"], tamTurno2)
CCIcandidatos["VOTOS_BRANCOS","2o Turno"] <- CCI(votosMuniTurno2[,"VOTOS_BRANCOS"], tamTurno2)
CCIcandidatos["VOTOS_NULOS","2o Turno"] <- CCI(votosMuniTurno2[,"VOTOS_NULOS"], tamTurno2)

CCIcandidatos[c("DILMA","JOSE.SERRA","VOTOS_BRANCOS","VOTOS_NULOS"),]
